package com.lfs.admin.dao;

import com.lfs.admin.model.entity.channel.ChannelInfoEntity;
import com.lfs.admin.model.entity.channel.ChannelToProductEntity;
import com.lfs.admin.model.vo.channel.ChannelToGroupVO;
import com.lfs.admin.model.vo.channel.ChannelToProductVO;
import com.lfs.admin.model.vo.channel.ChannelVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ChannelInfoDao {

    List<ChannelInfoEntity> queryChannelInfoList(ChannelVO channelInfoVO);

    List<ChannelInfoEntity> querySelectList(ChannelVO channelInfoVO);

    ChannelInfoEntity getChannelById(@Param("id") Integer id);

    List<ChannelToProductEntity> getChannelToProduct(ChannelToProductVO channelToProductVO);

    int updateChannelInfo(ChannelVO channelInfoVO);

    int updateChannelStatus(ChannelVO channelInfoVO);

    int updateChannelProductState(ChannelToProductVO channelToProductVO);

    int addChannelInfo(ChannelVO channelInfoVO);

    int addProductToChannel(List<ChannelToProductVO> channelToProductVOList);

    ChannelToProductEntity getChannelToProductByCode(@Param("productNum") Long productNum, @Param("channelNum") Integer channelNum);

    int deleteChannelInfo(Integer[] ids);

    List<ChannelInfoEntity> getChannelList();

    List<ChannelInfoEntity> getChannelToGroupList(@Param("channelGroupId") Integer channelGroupId);
}
